Repository navigation
Add OpenFilm MiniApp - #73
Open
cristinamadureira353-svg wants to merge 1 commit into
Open
cristinamadureira353-svg wants to merge 1 commit into
cristinamadureira353-svg wants to merge 1 commit into
Conversation
Run OpenFilm inside MiniMax Code with the desktop interface: the Studio editor plus the desktop chat column and local agents, by serving the desktop page and bridging window.openfilmNative over HTTP, reusing the desktop app's own Node handlers (chat, local agents, skills, roster). - desktopMode with web-Studio fallback when the OpenFilm clone/shell build is unavailable - project switcher, desktop-app launcher, concurrent-boot lock, dispose that closes agents, SSE streams and only our own Studio - state under context.dataDir; no secrets in pages or logs - README (en/zh-CN), LICENSE, root README rows Validated: npm run check (this package OK, 0 errors 0 warnings); 32-check acceptance covering boot, tree, desktop IPC, roster, SSE, web fallback, missing shell, concurrent boot and dispose.
cristinamadureira353-svg
force-pushed
the
add-openfilm-miniapp
branch
from
October 24, 2026 09:07
41bfbcc to
7527d86
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add OpenFilm MiniApp
What and why
OpenFilm is an open-source video editor with an agent chat — original repository: https://github.com/openfilm/openfilm. This package puts the OpenFilm desktop interface inside MiniMax Code as a MiniApp: the Studio editor with the desktop chat column and local agents, not only the plain web Studio.
The desktop app is Electron, and a MiniApp can only be a page + a Node process, so the Electron window itself cannot be embedded. What this package does instead is serve the desktop app's own page and replace the Electron native bridge (
window.openfilmNative) with an HTTP one:apps/desktop/shell/bridge.tsnever imports electron — it only consumeswindow.openfilmNative, so the builtshell/distcan be served as-is with a small injected bridge (miniapp/client/bridge-web.js).chat-ipc.mjs,local-agents-ipc.mjs,skills-ipc.mjs,agent-roster.mjs,agents.mjs,agent-usage.mjs,app-report.mjs— none of them imports electron). They are registered against an HTTPipcMainshim, so chat, local agents, skills and Settings → Agents run the desktop app's real code.webContents.send()forwards to it. Studio's/api/*and its WebSocket event stream are proxied same-origin, with the key attached on the server side only.@openfilm/desktopis not published to npm, so desktop mode needs a local clone of openfilm/openfilm and onepnpm --filter @openfilm/desktop build:shell. Without it the panel falls back to the plain web Studio (no chat column). This is documented in the README.Also included: opens the most recent project on launch (project switching then happens inside OpenFilm itself — no extra chrome of our own), an agent-callable endpoint that launches/activates the installed desktop app, a concurrent-boot lock (two panels start one Studio), and a
disposethat closes local agent sessions, ends SSE streams, and quits only the Studio this instance spawned.Security
context.dataDir(openfilm-studio/). The user's own desktop Studio home is never taken over.0600master key in that state directory (the desktop app uses the OS keychain; they are not shared).studio.jsonand.film/idfiles are only read, never written by the panel itself.Testing
Environment: MiniMax Code desktop on macOS (Apple Silicon), Node 22, OpenFilm 0.2.5, an openfilm/openfilm clone with
build:shellrun.npm run check— this package: OK, 0 errors, 0 warnings (other warnings in the output belong to existing packages).hello,local-agents:list,prefs), realchat:loadsessions, agent roster (11 agents), skills/MCP channels, SSE, web fallback, missing-shell error, two instances racing (one spawned, one reused, a single Studio process), anddisposewith an open SSE stream (does not hang; no Studio left behind).desktop:local-agents:probefor Codex starts a real ACP session (@agentclientprotocol/codex-acp1.13.1); Claude Code correctly reportsnot-installed.Not exercised: a full agent turn end to end (it would spend the user's agent quota and modify a real project) — only the ACP probe was run. Windows/Linux are untested (some paths use
open,pbcopy,ps). Native file pickers and screen capture returnnullby design.Notes for the reviewer
miniapp.config.local.jsonis gitignored: machine-specific overrides (repo path, which desktop app to launch, legacy state home) stay out of the package.